package com.fastloan.mgt.processcontrol.base.model;


import com.alibaba.fastjson.annotation.JSONField;

import java.util.List;

/**
 * @author yanwe
 * createTime 2017-11-2017/11/6 14:38
 */
public class ProcessFunction {

    private List<String> bmpIds;

    private String processName;

    private String processClass;

    private int [] needCleanStatus;

    @JSONField(serialize = false ,deserialize = false)
    private Object process;

    public Object getProcess() {
        return process;
    }

    public void setProcess(Object process) {
        this.process = process;
    }

    public List<String> getBmpIds() {
        return bmpIds;
    }

    public void setBmpIds(List<String> bmpIds) {
        this.bmpIds = bmpIds;
    }

    public String getProcessName() {
        return processName;
    }

    public void setProcessName(String processName) {
        this.processName = processName;
    }

    public String getProcessClass() {
        return processClass;
    }

    public void setProcessClass(String processClass) {
        this.processClass = processClass;
    }

    public int [] getNeedCleanStatus() {
        return needCleanStatus;
    }

    public void setNeedCleanStatus(int [] needCleanStatus) {
        this.needCleanStatus = needCleanStatus;
    }

    public static final class ProcessFunctionBuilder {
        private List<String> bmpIds;
        private String processName;
        private String processClass;
        private int [] needCleanStatus;
        private Object process;

        private ProcessFunctionBuilder() {
        }

        public static ProcessFunctionBuilder aProcessFunction() {
            return new ProcessFunctionBuilder();
        }

        public ProcessFunctionBuilder withBmpIds(List<String> bmpId) {
            this.bmpIds = bmpId;
            return this;
        }

        public ProcessFunctionBuilder withProcessName(String processName) {
            this.processName = processName;
            return this;
        }

        public ProcessFunctionBuilder withProcessClass(String processClass) {
            this.processClass = processClass;
            return this;
        }

        public ProcessFunctionBuilder withNeedCleanStatus(int[] needCleanStatus) {
            this.needCleanStatus = needCleanStatus;
            return this;
        }

        public ProcessFunctionBuilder withProcess(Object process) {
            this.process = process;
            return this;
        }

        public ProcessFunction build() {
            ProcessFunction processFunction = new ProcessFunction();
            processFunction.setBmpIds(bmpIds);
            processFunction.setProcessName(processName);
            processFunction.setProcessClass(processClass);
            processFunction.setNeedCleanStatus(needCleanStatus);
            processFunction.setProcess(process);
            return processFunction;
        }
    }
}
